package com.ly.heart.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ly.common.core.domain.BaseVo;
import lombok.Data;
import com.ly.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 金蝶-财务-其他应付单对象 erp_king_invoice_payable_other_info
 *
 * @author wutao
 * @date 2024-07-19
 */
@TableName ( "erp_king_invoice_payable_other_info" )
@ApiModel ( value = "erp_king_invoice_payable_other_info对象", description = "金蝶-财务-其他应付单" )
@Data
public class KingInvoicePayableOtherEntity extends BaseVo {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId ( value = "id", type = IdType.INPUT )
    private String id;

    /**
     * 单据类型编码
     */
    @ApiModelProperty ( "单据类型编码" )
    @TableField ( "doc_type_code" )
    @Excel ( name = "单据类型编码" )
    private String docTypeCode;

    /**
     * 往来单位类型，
     * 供应商：BD_Supplier;
     * 客户：BD_Customer;
     * 员工：BD_Empinfo;
     * 部门：BD_Department;
     * 其他往来单位：FIN_OTHERS
     */
    @ApiModelProperty ( "往来单位类型，" +
            "供应商：BD_Supplier;" +
            "客户：BD_Customer;" +
            "员工：BD_Empinfo;" +
            "部门：BD_Department;" +
            "其他往来单位：FIN_OTHERS" )
    @TableField ( "transaction_company_type" )
    @Excel ( name = "往来单位类型" )
    private String transactionCompanyType;

    /**
     * 单据编号
     */
    @ApiModelProperty ( "单据编号" )
    @TableField ( "doc_no" )
    @Excel ( name = "单据编号" )
    private String docNo;

    /**
     * 往来单位
     */
    @ApiModelProperty ( "往来单位" )
    @TableField ( "transaction_company_id" )
    @Excel ( name = "往来单位" )
    private String transactionCompanyId;

    /**
     * 业务日期
     */
    @ApiModelProperty ( "业务日期" )
    @TableField ( "biz_time" )
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    @Excel ( name = "业务日期", width = 30, dateFormat = "yyyy-MM-dd" )
    private Date bizTime;

    /**
     * 币别编码
     */
    @ApiModelProperty ( "币别编码" )
    @TableField ( "king_base_currency_code" )
    @Excel ( name = "币别编码" )
    private String kingBaseCurrencyCode;

    /**
     * 到期日
     */
    @ApiModelProperty ( "到期日" )
    @TableField ( "due_time" )
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    @Excel ( name = "到期日", width = 30, dateFormat = "yyyy-MM-dd" )
    private Date dueTime;

    /**
     * 总金额
     */
    @ApiModelProperty ( "总金额" )
    @TableField ( "total_amount" )
    @Excel ( name = "总金额" )
    private String totalAmount;

    /**
     * 采购组织，当前登录公司
     */
    @ApiModelProperty ( "采购组织，当前登录公司" )
    @TableField ( "procure_company_id" )
    @Excel ( name = "采购组织，当前登录公司" )
    private String procureCompanyId;

    /**
     * 付款组织，当前登录公司
     */
    @ApiModelProperty ( "付款组织，当前登录公司" )
    @TableField ( "pay_dept_id" )
    @Excel ( name = "付款组织，当前登录公司" )
    private String payDeptId;

    /**
     * 采购部门
     */
    @ApiModelProperty ( "采购部门" )
    @TableField ( "procure_dept_id" )
    @Excel ( name = "采购部门" )
    private String procureDeptId;

    /**
     * 未借款金额
     */
    @ApiModelProperty ( "未借款金额" )
    @TableField ( "no_loan_amount" )
    @Excel ( name = "未借款金额" )
    private String noLoanAmount;

    /**
     * 申请部门
     */
    @ApiModelProperty ( "申请部门" )
    @TableField ( "apply_dept_id" )
    @Excel ( name = "申请部门" )
    private String applyDeptId;

    /**
     * 采购员
     */
    @ApiModelProperty ( "采购员" )
    @TableField ( "procure_user_id" )
    @Excel ( name = "采购员" )
    private String procureUserId;

    /**
     * 备注
     */
    @ApiModelProperty ( "备注" )
    @TableField ( "remarks" )
    @Excel ( name = "备注" )
    private String remarks;

    /**
     * 到期日计算日期
     */
    @ApiModelProperty ( "到期日计算日期" )
    @TableField ( "due_cla_time" )
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    @Excel ( name = "到期日计算日期", width = 30, dateFormat = "yyyy-MM-dd" )
    private Date dueClaTime;

    /**
     * 付款条件编码
     */
    @ApiModelProperty ( "付款条件编码" )
    @TableField ( "pay_condition_code" )
    @Excel ( name = "付款条件编码" )
    private String payConditionCode;

    /**
     * 结算方式编码
     */
    @ApiModelProperty ( "结算方式编码" )
    @TableField ( "settlement_type_code" )
    @Excel ( name = "结算方式编码" )
    private String settlementTypeCode;

    /**
     * 结算组织Id
     */
    @ApiModelProperty ( "结算组织Id" )
    @TableField ( "settlement_dept_id" )
    @Excel ( name = "结算组织Id" )
    private String settlementDeptId;

    /**
     * 汇率类型
     */
    @ApiModelProperty ( "汇率类型" )
    @TableField ( "rate_type_id" )
    @Excel ( name = "汇率类型" )
    private String rateTypeId;

    @ApiModelProperty ( "汇率" )
    @TableField ( "rate" )
    @Excel ( name = "汇率" )
    private String rate;

    @ApiModelProperty ( "总金额本位币" )
    @TableField ( "total_amount_currency" )
    @Excel ( name = "总金额本位币" )
    private String totalAmountCurrency;

    @ApiModelProperty ( "税额本位币" )
    @TableField ( "rate_amount_currency" )
    @Excel ( name = "税额本位币" )
    private String rateAmountCurrency;

    @ApiModelProperty ( "不含税金额本位币" )
    @TableField ( "not_tax_amount_currency" )
    @Excel ( name = "不含税金额本位币" )
    private String notTaxAmountCurrency;

    @ApiModelProperty ( "未借款金额本位币" )
    @TableField ( "un_loan_amount_currency" )
    @Excel ( name = "未借款金额本位币" )
    private String noLoanAmountCurrency;

    @ApiModelProperty ( "申请部门" )
    @TableField ( exist = false )
    private String applyDeptName;

    /**
     * 源单类型
     */
    @ApiModelProperty ( "源单类型" )
    @TableField ( "source_type" )
    @Excel ( name = "源单类型" )
    private Integer sourceType;

    /**
     * 所属部门Id
     */
    @ApiModelProperty ( "所属部门Id" )
    @TableField ( "dept_id" )
    @Excel ( name = "所属部门Id" )
    private String deptId;

    @ApiModelProperty ( "流程实例id" )
    @TableField ( "instance_id" )
    private String instanceId;

    @ApiModelProperty ( "审批流状态" )
    @TableField ( "state" )
    @Excel ( name = "审批流状态" )
    private String state;

    @ApiModelProperty ( "创建人" )
    @TableField ( "create_by" )
    private String createBy;

    @ApiModelProperty ( "创建时间" )
    @TableField ( "create_time" )
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @ApiModelProperty ( "更新人" )
    @TableField ( "update_by" )
    private String updateBy;

    @ApiModelProperty ( "更新时间" )
    @TableField ( "update_time" )
    private Date updateTime;

    /**
     * 是否可用
     */
    @TableField ( "is_send" )
    private Integer isSend;

    @ApiModelProperty ( "是否可用" )
    @TableField ( "is_used" )
    @Excel ( name = "是否可用" )
    private Integer isUsed;

    @ApiModelProperty ( "业务type" )
    @TableField ( exist = false )
    private String businessType;

    @ApiModelProperty ( "流程模型id" )
    @TableField ( exist = false )
    private String modelId;

    @ApiModelProperty ( "币别名称" )
    @TableField ( exist = false )
    private String kingBaseCurrencyName;

    @ApiModelProperty ( "结算组织" )
    @TableField ( exist = false )
    private String settlementDeptName;

    @ApiModelProperty ( "付款组织" )
    @TableField ( exist = false )
    private String payDeptName;

    @ApiModelProperty ( "采购组织名称" )
    @TableField ( exist = false )
    private String procureCompanyName;

    @ApiModelProperty ( "采购部门名称" )
    @TableField ( exist = false )
    private String procureDeptName;

    @ApiModelProperty ( "采购员名称" )
    @TableField ( exist = false )
    private String procureUserName;

    @ApiModelProperty ( "结算方式名称" )
    @TableField ( exist = false )
    private String settlementTypeName;

    @ApiModelProperty ( "付款条件编码" )
    @TableField ( exist = false )
    private String payConditionName;

    @ApiModelProperty ( "创建人" )
    @TableField ( exist = false )
    private String createUser;

    @ApiModelProperty ( "往来单位名称" )
    @TableField ( exist = false )
    private String transactionCompanyName;

    //--------明细行数据
    @ApiModelProperty ( "明细行主键Id" )
    @TableField ( exist = false )
    private String sourceDetailId;

    @ApiModelProperty ( "费用项目编码编码" )
    @TableField ( exist = false )
    private String feeCode;

    @ApiModelProperty ( "费用承担部门编码" )
    @TableField ( exist = false )
    private String feeBearDeptCode;

    @ApiModelProperty ( "费用项目编码名称" )
    @TableField ( exist = false )
    private String feeName;

    @ApiModelProperty ( "费用承担部门名称" )
    @TableField ( exist = false )
    private String feeBearDeptName;

    @ApiModelProperty ( "明细行税率" )
    @TableField ( exist = false )
    private String detailTaxRate;

    @ApiModelProperty ( "明细行不含税金额" )
    @TableField ( exist = false )
    private String detailNoTaxAmount;

    @ApiModelProperty ( "明细行税额" )
    @TableField ( exist = false )
    private String detailTaxAmount;

    @ApiModelProperty ( "明细行总金额" )
    @TableField ( exist = false )
    private String detailTotalAmount;

    @ApiModelProperty ( "明细行未借款金额" )
    @TableField ( exist = false )
    private String detailNoLoanAmount;

    @ApiModelProperty ( "明细行备注" )
    @TableField ( exist = false )
    private String detailRemarks;

    @ApiModelProperty ( "明细行源单类型" )
    @TableField ( exist = false )
    private String detailSourceDocType;

    @ApiModelProperty ( "明细行源单编号" )
    @TableField ( exist = false )
    private String detailSourceDocNo;

    /**
     * ----------------------------
     * 以下送金蝶的编码
     */
    @ApiModelProperty ( "结算部门编码，送金蝶" )
    private String settleDeptCode;

    @ApiModelProperty ( "付款组织编码，送金蝶" )
    private String payDeptCode;

    @ApiModelProperty ( "采购组织编码，送金蝶" )
    private String productDeptCode;

    @ApiModelProperty ( "采购部门编码，送金蝶" )
    private String proDeptCode;

    @ApiModelProperty ( "申请部门编码，送金蝶" )
    private String applyDeptCode;

    @ApiModelProperty ( "采购员编码，送金蝶" )
    private String procureUserCode;


}
